package com.cloudkinto.service.stock;

import com.cloudkinto.entity.ProductStockFlowingDo;
import com.baomidou.mybatisplus.extension.service.IService;

import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  service接口
 * </p>
 * @author hua
 * @since 2023-01-04
 */
public interface ProductStockFlowingService extends IService<ProductStockFlowingDo> {

    SingleResult addInit();

    Object add(Object req, Long userId);

    SingleResult updateInit(Long id);

    Object update(Object updateVo, Long userId);

    int delete(Long id, Long userId);

    Object detail(Long id);

    SingleResult pageInit();

    List<Object> getList(Map<String, String> map);

    PageResult getListPage(Map<String, String> map);


    void insertFlowing(String type, Long productId, Long storageId, int goodQuantity, int badQuantity, Long toRackId, Long companyId, Long userId, String tips);

    Long insertFlowing(String type, Long shopId, Long productId, Long storageId, int goodQuantity, int badQuantity, Long toRackId, Long companyId, Long userId, String tips);

    Long insertFlowing(String type, Long shopId, Long productId, Long storageId, int goodQuantity, int badQuantity, int goodLockingQuantity, Long toRackId, Long companyId, Long userId, String tips);

    Long insertFlowing(String type, String orderNo, Long shopId, Long productId, Long storageId, int goodQuantity, int badQuantity, int goodLockingQuantity, Long toRackId, Long companyId, Long userId, String tips);

    Long insertFlowing(String type, String orderNo, Long shopId, Long productId, Long storageId, int goodQuantity, int badQuantity, int goodLockingQuantity, Long toRackId, String status, Long companyId, Long userId, String tips);
}
